<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
		<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

		<link rel="stylesheet" type="text/css" href="/css/style.css" />
	</head>
	<body>
		<div id="page">
			<div id="p">
				<h1>Welcome into BXD framework &raquo; Router example</h1>
				<p>Questo plugin permette la gestione delle route della tua applicazione avendo un pieno controllo su quello che accade nella url del browser</p>
				<hr />
				<h4>Caricare il plugin nella tua applicazione</h4>
				<p>Per utilizzare questo plugin è necessario utilizzare un evento che viene lanciato prima che il framework inizi il parsing della url tramite il routing interno</p>
				<p>Per fare questo bisogna inserire nella classe di configurazione degli eventi la seguente riga</p>
<pre>
config/Event.php

&lt;?php
class Event extends BXD_Event_Abstract_Config implements BXD_Event_Interface_Config
{
	public function runConfiguration()
	{
		$this->addEvent(BXD_Event_Notify::$ON_BEFORE_PARSING_URL, <i><strong>"NOME_EVENTO_DA_LANCIARE"</strong></i>);
	}
}
?&gt;
</pre>
				<p>Fatto questo è necessario creare il file che conterrà le operazioni che dovranno essere eseguite una volta notificato l'evento. Questa classe si occuperà di aggiungere il plugin nell'applicazione e di definire la lista delle route che l'applicazione sarà in grado di elaborare</p>
<pre>
event/<i><strong>NOME_EVENTO_DA_LANCIARE</strong></i>.php

&lt;?php
class <i><strong>NOME_EVENTO_DA_LANCIARE</strong></i> implements BXD_Event_Interface_Listener
{
	public function onAction($paramsEvent)
	{
		Bxd::includePlugin()->router();

		$router = Router::getInstance();

		$router->route("home", "/home", "Home", "index")->redirect301("http://www.google.it");
		$router->route("community", "/community(/<#page>)", "Community", "index");
		$router->route("profile", "/profile/<:username>", "User", "profile");

		$result = $router->match($paramsEvent['url']);

		if($result)
		{
			foreach($result as $key => $value)
			{
				switch($key)
				{
					case "controller":
						Bxd::getInstance()->bxdConf()->controller = $value;
						break;

					case "action":
						Bxd::getInstance()->bxdConf()->action = $value;
						break;

					default:
						Bxd::getInstance()->bxdConf()->params[$key] = $value;
						break;
				}
			}
		}
	}
}
?&gt;
</pre>
			</div>
		</div>
    </body>
</html>
